Translation lookaside buffers (TLBs) are hardware structures that are used in computing systems to cache virtual-to-physical address translations and operating system (OS)-page-granularity metadata (e.g., read/write permissions). The TLB is important to performance scalability in computing systems because the TLB is looked up on every memory access. Because the TLB is accessed on every single memory access, it is in the critical path and each processor core or accelerator has its own TLB. TLBs are kept coherent at the software-level using an operating system (OS). Whenever the OS modifies page translations or permissions in a page table, it initiates a coherency transaction among TLBs. This process is known as a TLB shootdown.
A TLB shootdown is an important but a time consuming and resource-intensive operation that requires putting all processing elements (e.g., a central processing unit (CPU) having one or more processor cores and one or more accelerators) operating or having operated in the same virtual address space into a quiescent state and ensuring modified page translations are purged from their virtual address translation caches. The overheads associated with TLB shootdown operations are expected to get worse as heterogeneous system architecture (HSA), input/output memory management unit (IOMMU), and other similar technologies enable accelerators to operate in the same virtual address spaces as processor cores and the number of accelerators in computing systems increase. There exists the need to reduce the overhead associated with TLB shootdowns.